	-- 10-Ene  FC. Se crea tabla sybmas_accionPermiso
--         se modifica sybmas_permisoObjeto y se eliminan 2 FK
--        atributos de sybmas_respaldo y sybmas_permisoObjeto se quita NN
--        se agregan 2 atributos a sybmas_opcionModulo 



--- Las tablas que Richard genero estan identicas, sin modificacion
---estan aqui y en el documento 1_sybmas_db


CREATE DATABASE sybmas_db ON DEV_DAT1=4 log ON DEV_LOG1=2;

use sybmas_db;

create table sybmas_tipoRespaldo (
id_tipoRespaldo NUMERIC(2) NOT NULL,
nombre VARCHAR(15) NOT NULL,
descripcion VARCHAR(30),
CONSTRAINT pk_sybmas_tipoRespaldo PRIMARY KEY(id_tipoRespaldo)
)
go


CREATE TABLE sybmas_respaldo (
id_respaldo NUMERIC(3) NOT NULL,
nombre VARCHAR(30) NOT NULL,
id_tipoRespaldo NUMERIC(2) NOT NULL,
fechaCreacion DATETIME NOT NULL,
dbid SMALLINT NOT NULL,
srid SMALLINT NULL,
suid SMALLINT NOT NULL,
CONSTRAINT pk_sybmas_respaldo PRIMARY KEY(id_respaldo),
CONSTRAINT fk_sybmas_tipoRespaldo FOREIGN KEY(id_tipoRespaldo)
REFERENCES sybmas_tipoRespaldo(id_tipoRespaldo)
)
go

CREATE TABLE sybmas_tipoPermiso (
id_tipoPermiso NUMERIC(3) NOT NULL,
nombre VARCHAR(30) NOT NULL,
descripcion VARCHAR(100),
CONSTRAINT pk_sybmas_tipoPermiso PRIMARY KEY (id_tipoPermiso)
)
go





CREATE TABLE sybmas_accionPermiso(
id_accion NUMERIC(2) NOT NULL,
accion VARCHAR(15) NOT NULL,
descripcion VARCHAR(80), 
CONSTRAINT pk_sybmas_accionPermiso PRIMARY KEY(id_accion)
)
go		

CREATE TABLE sybmas_permisoObjeto (
id_permiso NUMERIC(3) NOT NULL,
suid_otorga SMALLINT NOT NULL,
suid_recibe SMALLINT NOT NULL,
dbid SMALLINT NOT NULL,
tableid INT NOT NULL,
colid TINYINT NULL,
fecha DATETIME,
id_tipoPermiso NUMERIC(3) NOT NULL,
id_accion NUMERIC(2) NOT NULL,
CONSTRAINT pk_sybmas_permiso PRIMARY KEY (id_permiso),
CONSTRAINT fk_sybmas_tipoPermiso_01 FOREIGN KEY(id_tipoPermiso)
REFERENCES sybmas_tipoPermiso(id_tipoPermiso),
)
go

ALTER TABLE sybmas_permisoObjeto
ADD CONSTRAINT fk_sybmas_accionPermiso_02
FOREIGN KEY(id_accion) REFERENCES sybmas_accionPermiso
go




CREATE TABLE sybmas_propiedades(
id_propiedades NUMERIC(3) NOT NULL,
nombre VARCHAR(30) NOT NULL,
valor NUMERIC(4),
descripcion VARCHAR(60),
fecha DATETIME,
CONSTRAINT pk_sybmas_propiedades PRIMARY KEY (id_propiedades)
)
go

CREATE TABLE sybmas_modulo(
id_modulo NUMERIC(2,0) CONSTRAINT pk_modulo PRIMARY KEY,
nombre VARCHAR(30) NOT NULL,
ubicacion VARCHAR(50) NULL,
fecha datetime NULL
)
go

CREATE TABLE sybmas_rolesmodulo(
srid smallint NULL,
id_modulo NUMERIC(2,0)
)
go

create unique clustered index idx_rolesmodulo on sybmas_rolesmodulo(srid,id_modulo)
go

alter table sybmas_rolesmodulo ADD CONSTRAINT fk_modulo FOREIGN KEY(id_modulo) REFERENCES sybmas_modulo(id_modulo)
go

alter table sybmas_rolesmodulo ADD constraint fk_syssrvroles FOREIGN KEY(srid) REFERENCES master..syssrvroles(srid)
go

CREATE TABLE sybmas_opcionModulo(
id_opcionModulo NUMERIC(3) NOT NULL,
nombreopc VARCHAR(30) NOT NULL,
descripcion VARCHAR(100) NULL,
id_modulo NUMERIC(2,0) NOT NULL,
link VARCHAR(60) NULL,
rutaImagen VARCHAR(60) NULL, 
CONSTRAINT pk_sybmas_opcionModulo PRIMARY KEY(id_opcionModulo),
CONSTRAINT fk_sybmas_modulo_01 FOREIGN KEY(id_modulo)
REFERENCES sybmas_modulo(id_modulo)
)
go

CREATE TABLE sybmas_rolesOpcionModulo(
srid SMALLINT NULL,
id_opcionModulo NUMERIC(3),
CONSTRAINT fk_sybmas_opcionModulo_01 FOREIGN KEY(id_opcionModulo)
REFERENCES sybmas_opcionModulo(id_opcionModulo)
)
go

ALTER TABLE sybmas_rolesOpcionModulo
ADD constraint fk_syssrvroles_02
FOREIGN KEY (srid) REFERENCES master..syssrvroles(srid)
go

create unique clustered index idx_rolesOpcionModulo on sybmas_rolesOpcionModulo(srid,id_opcionModulo)
go








